❌Google Spread Sheetで3rd party storageする
この発想はなかった
sheetつくった
https://gyazo.com/423fa37a78430c90f895abeed30764dc
これをローカルのindex.htmlからread/writeするには?
ダメそう
設定漁ってもトークン的な概念はない
GASを組み合わせることでAPI化できるらしい
GSSについてるスクリプト(GAS)があって、ここにシートいじってデータ整えるコードを書き、このスクリを公開する
いやでもreadonlyですよね
writeできない or writeする口入れたら誰でもいじれてしまう
つまり
シート一つをラップしてkvsとして操作するread api、write apiを(シート付属のスクリとして)実装する
そのスクリを公開する
URLは誰にも見せないように
リクエストのメソッドごとに関数の名称が決められていて、公開URL に対して get メソッドであれば doGet 関数、Post メソッドであればdoPost関数が呼び出されます。
API の URL がスクリプトの ID から決定されるので、スクリプトID がばれてしまったら外部から叩き放題ですね。
スクリプトの中身を非公開にできるのなら、パスワードをハードコードしておく&リクエスト時にパスワードも入れさせて一致しなければreturnする、みたいにすればたぶんいけるsta.icon
試してみようかこれ
その前に
これを実現できた場合の操作感は?
利用者が行う手順
1: googleアカウントつくって、ログインして、GSS一枚つくってください
2: スクリプトにて、このスクリプトXをコピーしてください
Xは「シートをkey-value storeとして扱うI/F」を実装している
3: 2のスクリプトを公開してください
このURLはバレたらあかんので秘密にしてね
4: 3rd party storage対応アプリAの設置絵に、3のURLを入れてください
微妙だなぁ
2がだるい
コードを丸々コピーさせる的な操作は利用者にやらせたくない
3でopen secretになるのも微妙これはパスワードハードコードでいけるはず
そもそも二次元表でkvを表現できるのかって話
O(1)無理だよなこれ
内部的には線形探索せざるをえないはず(実質O(n))
ただの探索ならまだしも、jsonレベルの表現力はどうやって実現したらいい?
スクリプトXの車輪の再発明感
1KLは越えそう
そんなでかいスクリを利用者にコピペしてもらう
というわけで、試すまでもなくダメそう